Most modern computer software employs a GUI-type visual presentation to convey information to and receive commands from users. This interface relies on a variety of GUI elements or objects, including icons, text, drop-down menus, dialog boxes, toolbars, buttons, controls, and the like. A user typically interacts with a GUI presentation by using a pointing device (e.g., a mouse) to position a pointer or a cursor over an object and "clicking" on the object. Examples of operating systems that provide a graphical user interface are the "WINDOWS 95" and "WINDOWS 98" operating systems, which are manufactured and distributed by Microsoft Corporation of Redmond, Wash.
In a GUI system, toolbars are common user interface elements that provide an effective way to display numerous computer commands or control elements. Toolbars are GUI elements associated with an application window, which is a window for a particular application program in which primary viewing and/or editing interaction occurs. Toolbars provide access to a set of commands that are usually represented by buttons, menu buttons, comboboxes, and other UI controls. A user can invoke any command in the toolbar by clicking on the associated button or UI control. Toolbars typically present groups of controls in rows or columns, which can be oriented horizontally or vertically. Although most toolbars are visually attached to an application window, some may float above, below, or to the side of an application window. The control elements or commands presented on a toolbar are quickly accessible by the user because these items are only one click away while the user is using the associated program.
In some programs that employ toolbars, the toolbars can be modified by adding or deleting controls, or by changing the function associated with a control. This allows the user to customize a toolbar so that the toolbar provides convenient access to the commands that are most frequently used by the user. In addition, these programs support multiple toolbars that can be turned on and off, thereby providing the user with the option of viewing two or more toolbars simultaneously. In some prior art systems, the process of customizing or manipulating toolbars requires use of a dialog box that displays a list of commands available for the toolbar. The dialog box also can display a list of available toolbars that can be displayed in the application window. The user can then customize the toolbar by selecting which controls the user wants displayed.
Unfortunately, in these prior dialog box-type systems, customizing toolbars can be difficult because discovering this type customization feature is difficult for the typical user and, once discovered, use of the dialog box for a customization task is not an intuitive operation. For example, performing a seemingly simple task such as "remove button A from toolbar X" may require the user to not only find the dialog box for customizing the toolbar, but also decipher how to modify the specific toolbar, and decipher how to delete button A. In addition, some prior systems support a drag and drop mouse operation where controls are dragged and dropped on or outside of the toolbar to add and remove controls, respectively. However, the user may be reluctant to experiment with customizing the toolbar using these prior systems for fear that the user will be unable to restore the toolbar to its previous state or original form.
Furthermore, some prior systems provide centralized access to multiple toolbars, thereby making customization of a specific toolbar less certain or precise. Specifically, in an attempt to customize a specific toolbar, the user can accidentally alter another toolbar. Moreover, in these prior systems, removing or deleting a control from a toolbar also may remove the control from the dialog box. Hence, a less sophisticated user may be unable to find the location of the control if ever needed in the future and may be unable to restore the toolbar to its original or default state. As a result, the user may be reluctant to utilize the toolbar customization features.
Therefore, there is a general need for a method for easily and conveniently customizing the presentation of a set of control elements or commands, such as a toolbar, in a GUI-type interface for a program module. In addition, there is a need for a method that allows direct access to each toolbar so that customization is easily available and focused on the active toolbar. Also, there is a need for a single mechanism for maintaining and presenting information related to a likely set of controls that are available for a specific toolbar. There is a further need for a method that allows control elements to be removed from the toolbar without deleting or "hiding" the control elements from future access by the user. There is also a need for a method that facilitates multiple changes to the set of control elements presented by a toolbar during a single exercise a GUI element containing selection indicators having an operational state that determines whether corresponding control elements are presented on the toolbar.